package com.ken.apollo.domain.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.time.LocalDateTime;

/**
 * 邮件群发记录表(MailBatchSend)表实体类
 *
 * @author Ken
 * @since 2025-08-25
 */
@Data
@TableName("mail_batch_send")
public class MailBatchSend {
    
    /**
     * 主键ID
     */
    @TableId(type = IdType.AUTO)
    private Long id;
    
    /**
     * 群发任务名称
     */
    private String batchName;
    
    /**
     * 发送方配置ID
     */
    private Long senderConfigId;
    
    /**
     * 邮件主题
     */
    private String subject;
    
    /**
     * 邮件内容
     */
    private String content;
    
    /**
     * 收件人列表（JSON格式）
     */
    private String recipients;
    
    /**
     * 附件列表（JSON格式）
     */
    private String attachments;
    
    /**
     * 发送者邮箱
     */
    private String senderEmail;
    
    /**
     * 发送者姓名
     */
    private String senderName;
    
    /**
     * 总数量
     */
    private Integer totalCount;
    
    /**
     * 成功数量
     */
    private Integer successCount;
    
    /**
     * 失败数量
     */
    private Integer failedCount;
    
    /**
     * 发送状态：pending-等待发送，sending-发送中，completed-已完成，failed-失败
     */
    private String status;
    
    /**
     * 开始发送时间
     */
    private LocalDateTime startedAt;
    
    /**
     * 完成时间
     */
    private LocalDateTime completedAt;
    
    /**
     * 错误信息
     */
    private String errorMessage;
    
    /**
     * 重试次数
     */
    private Integer retryCount;
    
    /**
     * 最后重试时间
     */
    private LocalDateTime lastRetryTime;
    
    /**
     * 创建时间
     */
    private LocalDateTime createTime;
    
    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}